package Eleve;
import Exception.StatutException;
import Financement.Financement;
import Organisation.Departement;
import Organisation.IFIPS;
import Organisation.Promotion;
import Statut.FC;
import Statut.Statut;


public class EleveFC extends Eleve
{
	/**
	 * Son mode de financement
	 */
	protected Financement m_oSonFinancement;
	
	
	public void SetSonFinancement(Financement SonFinancement)
	{
		assert(SonFinancement != null);
		this.m_oSonFinancement = SonFinancement;
	}
	
	@Override
	protected Promotion GetPromotionInitiale() 
	{

		return IFIPS.GetInstance().GetPromotion(4);
	}

	@Override
	public void ValidationPedagogique() 
	{
		this.m_oSonFinancement.ValidationPedagogique();
	}
	
	@Override
	public void ImprimerInfo()
	{
		super.ImprimerInfo();
		this.m_oSonFinancement.ImprimerInfo();
	}
	
	public EleveFC(String nom, Financement financement, Departement departement) throws StatutException
	{
		super(nom);
		this.SetSonFinancement(financement);
		
		assert(departement != null);
		departement.AddEleve(this);
	}

	@Override
	protected Statut GetStatutInitial() 
	{
		return new FC();
	}

}
